/**
 * Copyright (C) 2014 Luvina Software Company
 * UserLogic.java, Dec 15, 2014, Nguyen Huu Luan LA11_AM
 *
 */
package net.luvina.manageuser.logics;

import java.util.List;

import net.luvina.manageuser.entities.UserInfor;

/**
 * Chứa các hàm logic của TblUser.
 * 
 * @author luan
 * 
 */
public interface TblUserLogic {

	/**
	 * Lấy danh sách users.
	 * 
	 * @param offset
	 *            vị trí bắt đầu lấy.
	 * @param limit
	 *            số lượng user lấy ra.
	 * @param groupId
	 *            mã phòng ban.
	 * @param fullName
	 *            tên đầy đủ.
	 * @param sortType
	 *            trường sắp xếp ưu tiên.
	 * @param sortByFullName
	 *            kiểu sắp xếp trường full_name.
	 * @param sortByCodeLevel
	 *            kiểu sắp xếp trường code_level.
	 * @param sortByEndDate
	 *            kiểu sắp xếp trường end_date.
	 * @return danh sách các user phù hợp với điều kiện truy vấn.
	 */
	public List<UserInfor> getListUsers(int offset, int limit, int groupId,
			String fullName, String sortType, String sortByFullName,
			String sortByCodeLevel, String sortByEndDate);

	/**
	 * Tính tổng số lượng user phù hợp với điều kiện tìm kiếm.
	 * 
	 * @param groupId
	 *            mã phòng ban.
	 * @param fullName
	 *            tên đầy đủ.
	 * @return số lượng các user phù hợp với điều kiện tìm kiếm.
	 */
	public int getTotalRecords(int groupId, String fullName);

	/**
	 * Lấy ra loginName của toàn bộ user.
	 * 
	 * @return danh sách loginName của toàn bộ user.
	 */
	public List<String> getListLoginName();

	/**
	 * Lấy ra loginName của toàn bộ user.
	 * 
	 * @return danh sách email toàn bộ user.
	 */
	public List<String> getListEmail();

}
